package com.wang.luntan.users.service;

import com.alibaba.fastjson.JSONObject;
import com.wang.luntan.common.pojo.ApiResponse;
import com.wang.luntan.common.util.PageInfoUtil;
import com.wang.luntan.users.pojo.AtAdmins;
import com.wang.luntan.users.pojo.AtUsers;

import java.util.Map;
public interface IUsersDbService {
    /* == 管理员操作开始 == */

    /**
     * 保存一条管理员
     *
     * @param admins
     * @return {
     * // 响应码
     * "code":"0",
     * // 响应信息
     * "info":"",
     * // 数据
     * "data":
     * {
     * // 影响条数;sql执行以后对数据库的影响条数
     * "effect":"",
     * // id,保存的时候要主键
     * "id":""
     * }
     * }
     */
    ApiResponse<Object> saveOneAdminsService(AtAdmins admins);

    /**
     * 更新一条管理员
     *
     * @param admins
     * @return
     */
    ApiResponse<Object> updateOneAdminsService(AtAdmins admins);

    /**
     * 删除一条管理员
     *
     * @param condMap
     * @return
     */
    ApiResponse<Object> deleteOneAdminsService(Map<String, Object> condMap);

    /**
     * 查询一条管理员
     *
     * @param condMap
     * @return
     */
    ApiResponse<AtAdmins> findOneAdminsService(Map<String, Object> condMap);

    /**
     * 查询多条管理员
     *
     * @param condMap
     * @return
     */
    ApiResponse<AtAdmins> findCondListAdminsService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

    /**
     * 重置密码->查询当前登录用户
     *
     * @param str
     * @return
     */
    AtAdmins findOneByName(String str);

    /**
     * 重置密码->查询当前用户
     *
     * @param admins
     * @return
     */
    JSONObject updateOneAdmins(AtAdmins admins);

    /* == 管理员操作结束 == */

    /* == 用户操作开始 == */

    ApiResponse<Object> saveOneUsersService(AtUsers users);

    /**
     * 更新一条用户
     *
     * @param users
     * @return
     */
    ApiResponse<Object> updateOneUsersService(AtUsers users);

    /**
     * 更新一条用户
     *
     * @param users
     * @param paramsMap 其它辅助信息
     * @return
     */
    ApiResponse<Object> updateOneUsersService(AtUsers users, Map<String, Object> paramsMap);

    /**
     * 删除一条用户
     *
     * @param condMap
     * @return
     */
    ApiResponse<Object> deleteOneUsersService(Map<String, Object> condMap);

    /**
     * 查询一条用户
     *
     * @param condMap
     * @return
     */
    ApiResponse<AtUsers> findOneUsersService(Map<String, Object> condMap);

    /**
     * 查询多条用户
     *
     * @param condMap
     * @return
     */
    ApiResponse<AtUsers> findCondListUsersService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
    /* == 用户操作结束 == */
}
